/*
 * @lc app=leetcode.cn id=67 lang=javascript
 *
 * [67] 二进制求和
 */

// @lc code=start
/**
 * @param {string} a
 * @param {string} b
 * @return {string}
 */
var addBinary = function (a, b) {
    let result = ''; //声明一个存储计算结果字符串
    let flag = 0;
    for (let i = a.length - 1, j = b.length - 1; i >= 0 || j >= 0; i--, j--) {
        let sum = flag; //声明一个累加值；
        sum += i >= 0 ? parseInt(a[i]) : 0;
        sum += j >= 0 ? parseInt(b[j]) : 0;
        //将两个数值分别从末位相加
        result += sum % 2;
        //对2取余，保存每一位的结果值。
        flag = Math.floor(sum / 2); //用来记录进位值
    }
    result += flag == 1 ? flag : ""
    //最后将拼接的字符串反转即可
    return result.split('').reverse().join('');
};
// @lc code=end